Data Replication হল একটি প্রক্রিয়া যেখানে ডেটাবেজের তথ্য একাধিক সার্ভারে কপি বা রেপ্লিকেট করা হয়, যাতে তথ্যের সমন্বয় বজায় রাখা যায় এবং ডেটা অ্যাক্সেসের গতি বৃদ্ধি পায়। H2 ডেটাবেজে Data Replication সাধারণত ডেটাবেজের উচ্চ প্রাপ্যতা, ব্যাকআপ, এবং ফেইলওভার ব্যবস্থাপনা নিশ্চিত করার জন্য ব্যবহৃত হয়। Replication প্রক্রিয়া মূলত ডেটার কপি তৈরি করার জন্য ব্যবহৃত হয়, যাতে মূল ডেটাবেজে কোনো সমস্যা হলে অন্য সার্ভারে ডেটা অ্যাক্সেস করা সম্ভব হয়।
H2 ডেটাবেজে দুই ধরনের ডেটা রেপ্লিকেশন পদ্ধতি থাকে:
Master-Slave Replication-এ, একটি ডেটাবেজ সার্ভার Master (Primary) হিসেবে কাজ করে, যেখানে সমস্ত লিখিত (write) অপারেশন হয়। অন্যদিকে, একটি বা একাধিক Slave (Secondary) সার্ভার Master সার্ভারের কপি রাখে এবং শুধু পড়ার (read) অপারেশন সম্পন্ন করে। যখন Master সার্ভারে কোনো ডেটা পরিবর্তন হয়, তখন তা স্বয়ংক্রিয়ভাবে Slave সার্ভারে সিঙ্ক্রোনাইজ হয়।
ধরা যাক, আমাদের একটি products
টেবিল আছে এবং আমরা Master-Slave Replication কনফিগার করতে চাই। Master সার্ভার থেকে Slave সার্ভারে তথ্য কপি করা হলে, Slave সার্ভার শুধু ডেটা পড়ে।
-- Master Server Replication Setup
CREATE TABLE products (
id INT PRIMARY KEY,
name VARCHAR(100),
price DECIMAL
);
-- Slave Server: Copying data from Master Server
-- Slave server will automatically sync changes from master.
এই পদ্ধতিতে, Slave সার্ভার শুধু SELECT
কুয়েরি ব্যবহার করে ডেটা পড়তে সক্ষম।
Multi-Master Replication হল একটি উচ্চতর রেপ্লিকেশন পদ্ধতি যেখানে একাধিক সার্ভারে ডেটা লেখা এবং পড়া উভয়ই সম্ভব। এই পদ্ধতিতে, সমস্ত সার্ভার Master হিসেবে কাজ করে এবং সকল সার্ভারে ডেটা একে অপরের সাথে সিঙ্ক্রোনাইজ হয়। একাধিক সার্ভারে ডেটা পরিবর্তন হলে, সেগুলি স্বয়ংক্রিয়ভাবে অন্য সার্ভারগুলিতে প্রতিফলিত হয়।
ধরা যাক, employees
টেবিলের মধ্যে ডেটা সংশোধন করার জন্য আমাদের দুটি সার্ভার ব্যবহার হচ্ছে। একটি সার্ভারে ডেটা আপডেট হলে, তা অন্য সার্ভারে দ্রুত প্রতিফলিত হবে।
-- Server 1 (Master)
UPDATE employees SET salary = 5000 WHERE id = 101;
-- Server 2 (Master) - this update will also replicate from Server 1
UPDATE employees SET salary = 5000 WHERE id = 101;
এখানে, একাধিক সার্ভারে ডেটা পরিবর্তন হবে এবং তা একে অপরের সাথে সিঙ্ক্রোনাইজ হয়ে যাবে।
H2 ডেটাবেজে Data Replication সেটআপ করতে কিছু নির্দিষ্ট কনফিগারেশন করতে হয়:
Replicated Database URL
H2 ডেটাবেজে replicated ডেটাবেজ URL ব্যবহার করে সার্ভারগুলির মধ্যে ডেটা সিঙ্ক্রোনাইজ করা হয়। Replication শুরু করার জন্য আপনি jdbc:h2:replicated
URL ব্যবহার করতে পারেন।
উদাহরণস্বরূপ:
jdbc:h2:tcp://localhost/~/test;DB_CLOSE_DELAY=-1;AUTO_SERVER=TRUE
Replicate Database Schema
ডেটাবেজের সমস্ত স্কিমা এবং টেবিল যথাযথভাবে সিঙ্ক্রোনাইজ করতে REPLICATE
কুয়েরি ব্যবহার করা যেতে পারে।
উদাহরণ:
REPLICATE FROM 'jdbc:h2:tcp://master_server/~/test';
H2 ডেটাবেজে Data Replication ব্যবহারের মাধ্যমে আপনি ডেটার উচ্চ প্রাপ্যতা, দ্রুত ডেটা অ্যাক্সেস এবং ব্যাকআপ ব্যবস্থাপনা নিশ্চিত করতে পারেন। Master-Slave Replication ছোট এবং মাঝারি সিস্টেমে কার্যকর, যেখানে এক সার্ভারে লেখা এবং অন্যান্য সার্ভারে পড়া হয়। অন্যদিকে, Multi-Master Replication বড় সিস্টেমের জন্য উপযুক্ত, যেখানে একাধিক সার্ভারে ডেটা লেখা এবং পড়া হয়। Data Replication ব্যবহারের মাধ্যমে ডেটাবেজের কর্মক্ষমতা, নিরাপত্তা এবং অ্যাক্সেস গতি বাড়ানো সম্ভব।
common.read_more